package utils

import (
	"net/http"

	"github.com/gin-gonic/gin"
)

type Response struct {
	Code int
	Msg  string
	Data interface{}
}

// 函数用于处理成功的HTTP请求响应。
// 参数:
//
//	c *gin.Context: Gin框架的上下文对象，用于处理HTTP请求和响应。
//	data interface{}: 用于传递响应数据
//
// 该函数通过 c.JSON 方法向客户端返回HTTP状态码200，表示请求成功，
// 并附带一个包含成功信息和数据的 Response 结构体。
func Success(c *gin.Context, data interface{}) {
	c.JSON(http.StatusOK, Response{Code: 200, Msg: "success", Data: data})
}

// 用于向客户端返回错误信息。
// 主要用途是在处理请求时遇到错误，通过此函数向客户端返回统一格式的错误信息。
// 参数:
//
//	c *gin.Context: Gin框架的上下文对象，用于处理HTTP请求和响应。
//	code int: 错误代码，用于标识具体的错误类型。
//	msg string: 错误消息，描述错误的详细信息。
func Error(c *gin.Context, code int, msg string) {
	// 使用Gin框架的c.JSON方法向客户端返回JSON格式的错误信息。
	// http.StatusOK表示HTTP状态码200，即请求已经成功处理，但这里用于返回错误信息。
	// Response是一个自定义的结构体，包含错误代码、错误消息和数据部分。
	// 在这个函数中，数据部分被设置为nil，因为主要是返回错误信息。
	c.JSON(http.StatusOK, Response{Code: code, Msg: msg, Data: nil})
}
